/**
 * ...
 * @author Krzysztof Rozalski
 */

package hapi.math;

interface Vector<T> implements Additive<T,T>, implements Multiplicative<T,Float>{

	public var length(getLength, null):Float;
	
	//public function dot(v:Vector):Float;
	//public function cross(v:Vector):Float;
	
	public function normalize():T;
	public function normal():T;
	
	public function negative():Vector<T>;
	public function zero():Void;
	
	public function distance(v:Vector<T>):Float;
}